package com.skivingcloud.admin.conf;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * 防止重复提交注解，在方法上引用
 * @author hushouquan
 * @since 2024/6/24
 */
@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface RequestLock{
    /**
     * 缓存key前缀
     * @return 缓存key前缀
     */
    String prefix() default "request";
    
    /**
     * 超时时间
     * @return 超时时间
     */
    long expire() default 3;
    
    /**
     * 超时时间模式
     * @return 秒
     */
    TimeUnit timeUnit() default TimeUnit.SECONDS ;
    
    /**
     * 分隔符
     * @return 分隔符
     */
    String delimiter() default ":";
    
}
